iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
AI & Data

AI ninja project系列 第 22

AI ninja project [day 22] 變分自動編碼器 Variational Autoencoder

  • 分享至 

  • xImage
  •  

如果講了自動編碼器(AE),
卻不介紹變分自動編碼器(VAE),
感覺有點太可惜了。
聽到生成演算法可能都會想到生成對抗網路GAN,
但是卻比較少人知道VAE也可以用來生成物件。

如果想看看VAE背後的原理的話,
可以自行調查看看,
跟自動編碼器的差異是,
在編碼層時將每一個特徵向量取平均值及標準差,以常態分佈生成壓縮資訊。

參考頁面:
https://www.tensorflow.org/probability/examples/Probabilistic_Layers_VAE?hl=zh_tw

colab:
https://colab.research.google.com/github/tensorflow/probability/blob/main/tensorflow_probability/examples/jupyter_notebooks/Probabilistic_Layers_VAE.ipynb?hl=zh_tw#scrollTo=_jMPwz8r9pYX

首先是引入套件,比較特別的是引入tensorflow_probability這個套件,
可以幫我們生成常態分佈計算層:
https://ithelp.ithome.com.tw/upload/images/20210922/201226780qK55EvpFX.png

載入手寫數字資料集,
劃分訓練集及測試集:
https://ithelp.ithome.com.tw/upload/images/20210922/201226780SG0jfXAa4.png

利用輸入圖片及壓縮資訊的特徵數目來搭建模型的編碼器,
跟AE重點上的不同在於編碼器的最後一層:
https://ithelp.ithome.com.tw/upload/images/20210922/2012267843K8YimoW8.png

模型解碼器的部分:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678vGpNOh7KxI.png

設計損失函數,以及以adam當作優化器進行訓練:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678qAcSnls7y7.png

將十張測試集資料放入模型,並作圖查看:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678821YD2C4Xh.png

https://ithelp.ithome.com.tw/upload/images/20210922/201226780Dt3Mtq8Ql.png

隨機生成十張手寫圖片:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678LP7SwmM0UA.png

https://ithelp.ithome.com.tw/upload/images/20210922/20122678ydcADkfFHD.png

如果想看不同生成模式的差異(mean、mode、random),
可以參考這篇文章:
https://towardsdatascience.com/6-different-ways-of-implementing-vae-with-tensorflow-2-and-tensorflow-probability-9fe34a8ab981

延伸閱讀

使用magenta的Multitrack MusicVAE來創作音樂:
https://colab.research.google.com/github/magenta/magenta-demos/blob/master/colab-notebooks/Multitrack_MusicVAE.ipynb


上一篇
AI ninja project [day 21] 自動編碼器 Autoencoders
下一篇
AI ninja project [day 23] 生成對抗網路 Generative Adversarial Network(GAN)
系列文
AI ninja project30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言